package cn.ljy.uem.model;

import cn.ljy.common.model.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.Set;

/**
 * @description 教学任务
 * @author 廖振豪
 * @date 2022-7-20
 */
@ApiModel(value="教学任务")
@Data
@NoArgsConstructor
public class SchoolTeachingTask extends BaseModel {
    private Integer id;

    @NotNull(message = "课程不能为空")
    private Long courseId;//课程

    @NotNull(message = "所属学期不能为空")
    private Integer termId;//所属学期

    private Integer classId;//行政班级

    private Integer classRoomId;//所属教室

    private Long teacherId;//教学任务创建人

    @NotNull(message = "班级名称不能为空")
    @Length(min = 0, max = 30, message = "班级名称的长度必须在 {min} - {max} 之间")
    private String className;//班级名称

    @Length(min = 0, max = 30, message = "教学任务编号的长度必须在 {min} - {max} 之间")
    private String taskNo;//教学任务编号

    @NotNull(message = "请选择是否网络课")
    private Boolean online;//是否网络课(true为网络课)

    private String intro;//教学任务介绍

    private Date createTime;//创建时间

    private Date updateTime;//修改时间

    //非数据库字段
    private SchoolCourse schoolCourse;                        //关联课程表
    private SchoolTerm schoolTerm;                            //关联学期表
    private SchoolClass schoolClass;                          //关联班级表
    private SchoolClassRoom schoolClassRoom;                  //关联教室表
    private SchoolTeacher schoolTeacher;                      //关联教师
    private Integer teacherNumber;                            //教师数量
    private Integer type;                                     //教学任务教师类型

    //用于接收前端的数据
    private Long[] teacherIds;//用于接收前端传递过来的教师集合id。

    //用于传递到前端的数据
    private Set<SchoolTeacher> teachers;//该教学任务拥有的教师集合
//
//    //用于接收前端的数据
//    private Long[] studentIds;//用于接收前端传递过来的学生集合id。
//
//    //用于传递到前端的数据
//    private Set<SchoolTeacher> students;//该教学任务拥有的学生集合
}
